package com.developer.web.content.privatepage.fases;

import java.util.Map;

import javax.servlet.http.HttpServletRequest;

import com.developer.core.page.PrivatePage;
import com.developer.core.utils.ObjectToXML;
import com.developer.logic.modulo.autenticacion.AutenticacionServicio;
import com.developer.logic.modulo.autenticacion.SessionAppUsuario;
import com.developer.logic.modulo.fases.FaseServicio;
import com.developer.logic.modulo.grupos.GrupoServicio;
import com.developer.logic.modulo.grupos.dto.Fase;

public class PageFinalizarFase_1 extends PrivatePage{
	
	String nextPage = "/fases/PageFinalizarFase_2.do";
	
	public StringBuffer executeAction(HttpServletRequest request) {
		
		StringBuffer xmlPage = new StringBuffer();
		ObjectToXML objectToXML = ObjectToXML.getInstance();
				
		
		//Session de aplicacion 
		SessionAppUsuario sessionAppUsuario = AutenticacionServicio.getInstance().getSessionAppUsuario(request);
		
		if(sessionAppUsuario!=null){
		
			//Se obtienen los parametros del request
			Map<String, Object> parameters = getParameters(request, true);
			
			//Grupo
			Fase fase = (Fase)getParameterToObject("Fase", Fase.class, null, parameters);
			
			if(fase !=null){
			
				fase = GrupoServicio.getInstance().getFase(fase.getFase());
				
				StringBuffer mensajeError = new StringBuffer();
				FaseServicio faseServicio = FaseServicio.getInstance();
				Fase faseFinalizada = faseServicio.finalizarFase(fase, mensajeError);
				
				if(faseFinalizada==null){
					this.nextPage= this.nextPage+"?error=1";
					sessionAppUsuario.getHttpSession().removeAttribute("var.mensajeError");
					sessionAppUsuario.getHttpSession().setAttribute("var.mensajeError", mensajeError.toString());
					
				}else{
					sessionAppUsuario.getHttpSession().setAttribute("var.faseFinalizada", faseFinalizada);
					
				}
			
			}else{
				sessionAppUsuario.getHttpSession().removeAttribute("var.faseFinalizada");
				
				this.nextPage= this.nextPage+"?error=1";
				sessionAppUsuario.getHttpSession().removeAttribute("var.mensajeError");
				sessionAppUsuario.getHttpSession().setAttribute("var.mensajeError", "Se debe seleccionar una fase para ser finalizada");
				
			}
		}else{
			
			xmlPage.append("<error>1</error>");
			xmlPage.append(objectToXML.getXML(new String("Usuario invalido. Por favor inicie session correctamente")));
			
		}	
		
		return xmlPage;
	}

	@Override
	public String getNextPage() {
		// TODO Auto-generated method stub
		return nextPage;
	}

	@Override
	public boolean isAccesoValido(HttpServletRequest arg0) {
		return AutenticacionServicio.getInstance().isAccesoPrivadoValido(arg0);
	}
	

	

}
